--- title: "01-C、C++ 安装与配置" created: 2025-11-28 tags: - 项目筑基 --- # C / C++ 安装与配置 ## **C / C++ 开发环境主要组成:编译器 + IDE** - **编译器:** - **gcc / g++**:开源、跨平台,主要用于 Linux 和 Windows(MinGW) - **clang / clang++**:性能优秀、错误提示友好,适合 macOS、iOS 和高性能系统开发 - **MSVC(Microsoft Visual C++)**:Windows 原生编译器,适用于 Windows 桌面应用、游戏开发 - **IDE:** - **Dev-C++**:轻量、快速的 C/C++ 编辑器,适合用来做题、学习 - **CLion**:由 JetBrains 提供的强大 IDE,适合工程级、嵌入式项目开发,集成了 CMake 支持和调试工具 - **Visual Studio**:功能强大的 Windows 原生 IDE,适合大型项目、Windows 专用开发 对于想要快速做 C 语言题目和小项目的人,**Dev-C++** 是最简便的选择。它内置了 **MinGW** 编译器,安装后就能直接使用,无需复杂配置。 ## **Dev-C++** - 内置 **MinGW 编译器**,无需额外安装 - **下载: - 经典版 Orwell Dev-C++ 5.11: - 活跃分支推荐 **小熊猫 Dev-C++(Red Panda)**:原版停更后的续作,中文界面、内置新版 MinGW,做题体验更好: - 教训同总述篇:认官网/仓库链接,别依赖本地存的安装包 **如何使用 Dev-C++ 进行 C/C++ 编译** 1. **打开 Dev-C++**: - 创建一个新的 C 文件或 C++ 文件(.c 或 .cpp) 2. **编写代码**: - 直接在 Dev-C++ 中编写 C/C++ 程序,如: ``` c #include #include int main() { printf("Hello, World!\n"); return 0; } ``` 3. **编译和运行**: - **快捷键**:按 **Ctrl + F9** 进行编译 - **运行**:按 **Ctrl + F10** 运行程序 Dev-C++ 会自动帮你完成编译和运行,背后是通过 **gcc** 编译器来执行的。 ## **如何手动编译和运行 C/C++ 文件** 希望手动使用命令行来编译 C/C++ 文件,可以将 **Dev-C++ 的 MinGW 编译器路径**添加到 **环境变量**。 **找到 Dev-C++ 安装路径**: - 例如,路径为:`C:\Program Files (x86)\Dev-Cpp\MinGW64\bin` ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/image-7d97a57b.png]] **将路径添加到环境变量**: - 右键“此电脑” → **属性** → **高级系统设置** → **环境变量** - 在“系统变量”中找到 `Path`,点击 **编辑** - 在最后添加 `C:\Program Files (x86)\Dev-Cpp\MinGW64\bin` 目录路径 ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/image-c0a00475.png]] **测试**: - 打开命令行,输入 `gcc --version` 和 `g++ --version`,检查是否能正确显示版本信息。 ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/image-16d7f1a1.png]] 使用命令行编译和运行 C 文件: 假设你的 C 文件名为 `test.c`: ``` gcc test.c -o test # 编译 C 文件 .\test # 运行编译生成的可执行文件 ``` ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/gcc-ca7c6fe8.gif]] ## **编译方式全家桶:gcc、make、CMake 到底谁干嘛 一句话理清三层关系:**gcc 是干活的(编译器),make 是监工(按 Makefile 调度 gcc),CMake 是写监工手册的(按 CMakeLists.txt 生成 Makefile)**。项目越大越往上层走。 ### 第一层:编译器——gcc / g++(真正干编译的) `gcc test.c -o test` 这一命令背后其实走了四步: ```text test.c → 预处理(展开 #include/#define)→ 编译(成汇编)→ 汇编(成二进制 .o)→ 链接(把 .o 和库拼成可执行文件) ``` 分步执行就能看中间产物(有时排查问题要用): ``` gcc -E test.c -o test.i # 预处理后停下 gcc -S test.i -o test.s # 生成汇编 gcc -c test.s -o test.o # 生成目标文件(二进制) gcc test.o -o test # 链接 ``` 日常最常用的参数: | 参数 | 作用 | | --- | --- | | `-o 名字` | 指定输出文件名 | | `-g` | 带调试信息(配合 gdb / IDE 断点调试必加) | | `-O2` | 优化级别(O0 不优化,O2 常用,O3 激进) | | `-Wall` | 打开全部常见警告(建议养成习惯) | | `-std=c++17` | 指定语言标准(c99/c11/c++11/c++17/c++20) | | `-I目录` `-L目录` `-l库名` | 指定头文件目录 / 库目录 / 链接哪个库(如 `-lm` 链数学库) | > 💡 同层的其他编译器:**clang/clang++**(macOS 默认,报错信息更友好,用法跟 gcc 几乎一致)、**MSVC 的 cl.exe**(Visual Studio 内置,Windows 原生,参数风格完全不同)。Dev-C++ 里点编译,背后调的就是它内置的 MinGW gcc——和你在命令行敲 gcc 是同一个东西。 ### 附:gdb 命令行调试三板斧 编译时加了 `-g` 的程序才能调。`gdb test` 进入后: | 命令 | 作用 | | --- | --- | | `break main` / `b 12` | 在函数名 / 行号设断点 | | `run` | 开始跑,撞到断点停下 | | `next` / `n` | 单步(不进函数);`step`/`s` 会进函数 | | `print 变量` | 看变量当前值 | | `continue` | 跑到下一个断点 | | `quit` | 退出 | > 💡 日常做题用 Dev-C++ 的鼠标断点就够;gdb 是 Linux/服务器上没 IDE 时的保命技能,这六个命令能解决大半排查。 ### 第二层:make + Makefile——工程多了不能全手敲 一个工程几十上百个 .c 文件,总不能每次手敲一长串 gcc。**Makefile 就是把编译规则写下来,make 工具照着执行,而且只重编改过的文件(增量编译)**: ```makefile # Makefile 示例(注意缩进必须是 Tab) test: main.o func.o gcc main.o func.o -o test main.o: main.c gcc -c main.c func.o: func.c gcc -c func.c clean: rm *.o test ``` 之后只需要敲 `make`(重新编译)/ `make clean`(清理)。 ### 第三层:CMake——Makefile 也不想手写了 Makefile 的问题:**换平台就得重写**(Windows 下没有 make,MSVC 又有自己的 nmake)。CMake 的思路是——我写一份**平台无关的 CMakeLists.txt**,CMake 帮我生成当前平台的构建文件(Linux 生成 Makefile,Windows/CLion 生成对应工程),真正编译还是 gcc/MSVC 干: ```cmake # CMakeLists.txt 最小示例 cmake_minimum_required(VERSION 3.10) project(Hello) set(CMAKE_CXX_STANDARD 17) add_executable(test main.c func.c) ``` 命令行使用: ``` cmake -B build # 在 build/ 目录生成构建文件 cmake --build build # 实际编译 ``` > 💡 **所以 CLion 打开项目总是先跑 CMake**——它默认就用 CMake 管理构建,`add_executable(test main.c func.c)` 这行就是告诉它"用这些源文件编译出 test"。Linux 课程/开源项目里看到"mkdir build && cmake .. && make"三板斧,就是这条链:**CMake 生成 → make 执行 → gcc 干活**。 | 层 | 工具 | 你写的文件 | 一句话 | | --- | --- | --- | --- | | 编译器 | gcc / clang / MSVC | —— | 真正把代码变可执行文件的 | | 构建工具 | make | Makefile | 按规则调度编译,支持增量 | | 构建系统生成器 | CMake | CMakeLists.txt | 一份配置,各平台生成各自的构建文件 | ## **工程级开发环境:CLion** 对于需要进行 C/C++ 工程项目开发的用户,**CLion** 是一个非常合适的选择。CLion 是由 JetBrains 提供的集成开发环境,专门为 C 和 C++ 设计,支持 CMake 构建系统,具有强大的调试功能和智能代码补全。 - 集成 CMake 构建系统 - 高效的代码补全和重构功能 - 强大的调试器支持 - 支持多平台(Windows、Linux、macOS) - 嵌入式开发支持(如 ESP32,使用 CLion 配合 PlatformIO 插件) ### **CLion 安装与配置** - **官网**:[CLion 官网下载](https://www.jetbrains.com/clion/) - 安装并启动 CLion 后,它会自动检测本地的编译工具链(如 MinGW、MSVC 或 Clang) ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/image-7fbcbd39.png]] 破解: 解压破解包 下载完clion后启动再关闭 然后运行这个脚本 再次打开clion即破解完成(至2099) (破解包已丢——CLion 同样可以走学生认证拿官方授权,见总述篇) ![[2-Learning/03-项目筑基/04-工具与环境/01-编程语言/assets/image-c27e96eb.png]] ## **微软 Visual Studio** 开发 **Windows 桌面应用**、**游戏开发**(如使用 DirectX)等项目的好选择。它有强大的调试工具、界面设计器和对 Windows 原生开发的优化。 ### **Visual Studio 安装与配置** - **官网**:[Visual Studio 官网下载](https://visualstudio.microsoft.com/) - 选择安装 **Desktop development with C++** 工作负载,这样可以安装 MSVC 编译器。 暂无破解,而且非常庞大,不建议使用,除非是系统少了什么c环境才会用这个工具,之后学c#也会用到。 ## C相关图形库 --- ⬅️ [[2-Learning/03-项目筑基/04-工具与环境/工具安装与环境配置|工具安装与环境配置]] 🏠 [[00-工具与环境|00-工具与环境]] ➡️ [[02-python 安装与配置|python 安装与配置]]